home *** CD-ROM | disk | FTP | other *** search
- #tcp-client
- ( $them, $port ) = @ARGV;
-
- $port = 2345 unless $port;
- $them = 'localhost' unless $them;
-
- $AF_INET = 2;
- $SOCK_STREAM = 1;
-
- $SIG{'INT'} = 'dokill';
- sub dokill {
- kill 9,$child if $child;
- }
-
- $sockaddr = 'S n a4 x8';
-
- #chop($hostname = `hostname`);
-
- ($name,$aliases,$proto) = getprotobyname('tcp');
- ($name,$aliases,$port) = getservbyname($port,'tcp')
- unless $port =~ /^\d+$/;;
- ($name,$aliases,$type,$len,$thisaddr) =
- gethostbyname($hostname);
- ($name,$aliases,$type,$len,$thataddr) = gethostbyname($them);
-
- $this = pack($sockaddr, $AF_INET, 0, $thisaddr);
- $that = pack($sockaddr, $AF_INET, $port, $thataddr);
-
- if (socket(S, $AF_INET, $SOCK_STREAM, $proto)) {
- print "socket ok\n";
- }
- else {
- die $!;
- }
-
- if (bind(S, $this)) {
- print "bind ok\n";
- }
- else {
- die $!;
- }
-
- if (connect(S,$that)) {
- print "connect ok\n";
- }
- else {
- die $!;
- }
-
- select(S); $| = 1; select(STDOUT);
-
- while( <STDIN> ) {
- print S;
- }
-